import axios from 'axios'

axios.defaults.baseURL = 'http://localhost:8888/api/private/v1'

// 使用请求拦截，它会将所有的请求拦截下来
axios.interceptors.request.use(function (config) {
  // config参数表示请求对象
  console.log(config)
  // 先从本地取token的值，判断到底有没有token值，如果有就往headers里面塞token，如果没有就直接return
  let mytoken = localStorage.getItem('mytoken') || ''
  if (mytoken) {
    // 存在token就将token塞进请求头的某个字段中，这个字段名不能随便取，它是一个前后端约定好的字段名
    config.headers['Authorization'] = mytoken
  }
  // 请求对象必须要return回去
  return config
}, function (error) {
  return Promise.reject(error)
})

// 4.1 定义登录接口
export const postLogin = obj => {
  return axios.post('/login', obj)
    .then(res => res.data)
}

// 用户数据列表
export const getUserList = obj => axios.get('/users', {params: obj}).then(res => res.data)

// 添加用户
export const addUser = obj => axios.post('/users', obj).then(res => res.data)

// 删除用户
export const delUser = id => axios.delete(`/users/${id}`).then(res => res.data)

// 编辑用户
export const editUser = obj => axios.put(`/users/${obj.id}`, {email: obj.email, mobile: obj.mobile}).then(res => res.data)

// 切换用户状态
export const changeState = (id, state) => axios.put(`users/${id}/state/${state}`).then(res => res.data)

// 获取角色列表
export const getRoles = () => axios.get('/roles').then(res => res.data)

// 给用户分配角色
export const grantRole = (id, rid) => axios.put(`users/${id}/role`, { rid: rid }).then(res => res.data)

// 获取所有的权限列表
export const getRights = type => axios.get(`rights/${type}`).then(res => res.data)
